package com.cn.wanxi.common;

public class MyHelp {
    /**
     * 和servlet相比 包对应关系
     * servlet      controller
     * dao          mapper
     * service      service
     * model        entity
     * util         common
     *
     *
     * 1.项目创建  maven的一个简单框架
     * 2.去src--main里面创建三个包
     *      java
     *      resource
     *      web
     * 3.创建依赖jar包--maven里面去下载
     *      启动spring的包 spring-webmvc
     *      连接数据库  mysql-connector-java
     *      连接需要用到jdbc的连接池 spring-jdbc
     *      mybatis连接  mybatis
     *      spring对于mybatis的支持  mybatis-spring
     *      减少set和get方法   lombok   必须按住lombok 插件
     *      缓存redis
     *      io流包
     * 4.web.xml 设置  主要是读取配置文件
     *      applicationContext.xml
     *          1）扫描所有的java类
     *          2）开启注解模式
     *          3）视图解析器
     *      spring-mybatis.xml
     *          1）连接数据库的配置jdbc.properties
     *          2）数据库连接池的配置
     *          3）配置实体类和sql语句的映射
     *          classpath*  写了这个在resource里面去找，不写在java里面去找
     *          4）配置映射 sql语句和java类的映射
     * 5.启动项目进行测试
     * 6.如果项目启动不成功，去查找我们的包是否引入lib包里面
     *
     */
    /**
     * 2021-3-17
     * 1.返回页面都要通过后台传值
     * 2.用xadmin的时候需要熟悉原有的js用法
     * 3.如果个别表单不清楚，需要查询layui官网
     * 4.sql语句xml写法
     *      if
     *      for
     *      where
     *      resultMap
     *
     */
    /**
     * 2021-3-18
     * 1.模糊查询 复选框取值
     * 2.分页
     * 3.编辑里面的赋值
     * 4.文件上传
     *      1.引入两个io流的包
     *      2.(@RequestParam("file") MultipartFile multipartFile),
     *      因为有很多文件上传，所以提取出来公共部分，还需要对用户进行登录判断
     *      3.返回一个数据库的保存路径
     *      4.在页面再次通过普通数据传递到后台
     *      注意：需要对applicationContext.xml进行配置
     *       <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
     *         <property name="defaultEncoding" value="utf-8"/>
     *         <property name="maxUploadSize" value="#{1024*1024}"/>
     *     </bean>
     *     返回页面进行json对象的封装，需要在配置文件里面添加
     *      <mvc:message-converters register-defaults="true">
     *             <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
     *                 <property name="supportedMediaTypes" value="application/json"/>
     *                 <property name="features">
     *                     <array>
     *                         <value>WriteMapNullValue</value>
     *                         <value>WriteDateUseDateFormat</value>
     *                     </array>
     *                 </property>
     *             </bean>
     *         </mvc:message-converters>
     *
     */
    /**
     * 2021-3-23
     * 注解：
     * @RestController
     * @Controller 表面是页面控制层  如果没有这个注解 就不能使用RequestMapping
     * @RequestMapping("/back/user")
     *      请求路径 webservlet("/aa")
     *      @GetMapping(""),@PostMaping("")
     *      @RequestMapping(value = "/denglu",method = RequestMethod.POST)
     * @Autowired 自动注入 ,用于谁要注入,目的就是为了使对象进行实例化
     *      @autowired和@resource的区别?
     * @ResponseBody 作用其实是将java对象转为json格式的数据。
     * @Service 表示服务层
     * @Mapper 表示数据层  对应的xml文件---对应sql语句的编写
     * @Data lombok 主要的作用省略了以前model层的get和set @Builder
     * @RequestParam("file") 表示得到页面请求的参数
     * @RequestMapping(value = "/denglu/{qq}/{table}/{model}/{id}")
     *      @PathVariable("qq") String qq, @PathVariable("id") Integer id
     * 注解原理：
     *      1.扫描所有的类   <context:component-scan base-package="com.cn.wanxi"/>
     *            将所有的类保存到classList集合里面
     *      2.开启注解模式 <mvc:annotation-driven>
     *          通过classList集合去遍历
     *           1）扫描类上面有Controller和service和mapper的注解
     *           保存到Map(key,object)instanceMap
     *           instanceMap里面存的是对象  new UserService();
     *      3.通过反射进行赋值  实例化对象
     *          field.setAccessible(true);强制赋值
     *          field.set(entry.getValue(), instanceMap.get(key));
     *      4.拼接所有访问地址  methodMap
     *      5.页面访问的地址和methodMap的地址只要一致，才能进行访问后端
     *      6.注意反射的应用：
     *          1）通过反射得到对象
     *          2）通过反射得到属性
     *          3）通过反射得到方法
     *
     *
     */
}
